﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SeizyUtils.Common.Utilities;

namespace SeizyUtils.Common.Data.Csv
{
    class CsvRecord : Record, ICsvRecord
    {
        private readonly IList<object> _values;
        
        public CsvRecord(ColumnModel columnModel, IList<string> values) : base(columnModel)
        {
            _values = new List<object>();
            foreach (string s in values)
            {
                _values.Add(s);
            }
        }

        protected override void SetColumnValue(IColumn column, object value)
        {
            int index = getColumnModel().getColumnNum(column.getName());
            if (index == -1)
            {
                Console.Write("カラム名[" + column.getName() + "]が見つかりませんでした。");
                throw new ApplicationException("カラム名[" + column.getName() + "]が見つかりませんでした。");
            }
            _values[index] = value;

        }

        protected override object GetColumnValue(IColumn column)
        {
            int index = getColumnModel().getColumnNum(column.getName());
            if (index == -1)
            {
                Console.Write("カラム名["+column.getName()+"]が見つかりませんでした。");
                throw new ApplicationException("カラム名[" + column.getName() + "]が見つかりませんでした。");
            }
            return _values[index];
        }

    }
}
